//
//  QuoteLvMinIndex.h
//  GAQuoteTradeLib
//
//  Created by  on 11-9-21.
//  Copyright 2011年 __MyCompanyName__. All rights reserved.
//

#ifndef GAQuoteTradeLib_QuoteLvMinIndex_h
#define GAQuoteTradeLib_QuoteLvMinIndex_h

#include "QuoteLvData.h"

//lisz add 20110916 start
#define MIN_INDEX_L2XX_N1  60
#define MIN_INDEX_L2XX_N2  5
#define MIN_INDEX_L2XX_N3  10
//lisz add 20110916 end

///Leve2 ddx
typedef struct QUOTELV_MIN_DDX_tag
{
  double  ddx[MIN_MAX_NUM];
  double  ddxSum[MIN_MAX_NUM];
//  double  ddx2[MIN_MAX_NUM];
//  double  ddx3[MIN_MAX_NUM];
}QUOTELV_MIN_DDX;

///leve2 bbd
typedef struct QUOTELV_MIN_BBD_tag
{
  long64  bbd[MIN_MAX_NUM];
}QUOTELV_MIN_BBD;

///add by jason 分时增加指标
///KDJ结构
typedef struct QUOTELV_MIN_KDJ_tag
{
	///KDJ指标K的值
	double		K[MIN_MAX_NUM];
	///KDJ指标D的值
	double		D[MIN_MAX_NUM];
	///KDJ指标J的值
	double		J[MIN_MAX_NUM];
}QUOTELV_MIN_KDJ;

///RSI结构
typedef struct QUOTELV_MIN_RSI_tag
{	
	///RSI1
	double		RSI1[MIN_MAX_NUM];	
	///RSI2
	double		RSI2[MIN_MAX_NUM];		
	///RSI3
	double		RSI3[MIN_MAX_NUM];		
}QUOTELV_MIN_RSI;

///MACD
typedef struct QUOTELV_MIN_MACD_tag
{		
	///DIF
	double		DIF[MIN_MAX_NUM];			
	///DEA
	double		DEA[MIN_MAX_NUM];		
	///MACD
	double		MACD[MIN_MAX_NUM];	
	
	///短EMA
	double		shortEMA[MIN_MAX_NUM];
	///长EMA
	double		longEMA[MIN_MAX_NUM];
}QUOTELV_MIN_MACD;
//end

///指标结构
typedef struct QUOTELV_MIN_INDEX_tag
{
  ///DDX
  QUOTELV_MIN_DDX DDX;
  ///BBD
  QUOTELV_MIN_BBD BBD;
	
	//add by jason 
	///KDJ
	QUOTELV_MIN_KDJ		KDJ;
	///KDJ周期
	int					KDJ_N;
	///KDJ M1日平均
	int					KDJ_M1;
	///KDJ M2日平均
	int					KDJ_M2;
	
	//RSI
	QUOTELV_MIN_RSI		RSI;
	int					RSI_N1;
	int					RSI_N2;
	int					RSI_N3;
	
	//MACD
	QUOTELV_MIN_MACD		MACD;
	///MACD 短期
	int					MACD_SHORT;
	///MACD 长期
	int					MACD_LONG;
	///MACD 天数
	int					MACD_MID;
	//end
  
}QUOTELV_MIN_INDEX;

/**分时线指标操作结构初始化
 *
 *  @param 无
 *
 *  @return QUOTELV_MIN_INDEX*	分时线指标指针
 *
 *		
 */
QUOTELV_MIN_INDEX* QuoteLvMinIndex_New();

/**计算DDX线
 *
 *  @param QUOTELV_MIN_INDEX*		aKIndex		操作结构指针
 *  @param QUOTELV_MIN_RES*			aRes      k线应答结构
 *
 *  @return -
 *
 *		
 */
void QuoteLvMinIndex_calcDDX(QUOTELV_MIN_INDEX* aMinIndex,
                             QUOTELV_MIN_RES* aRes);

/**计算BBD线,大单净差累积
 *
 *  @param QUOTELV_MIN_INDEX*		aKIndex		操作结构指针
 *  @param QUOTELV_MIN_RES*			aRes      k线应答结构
 *
 *  @return -
 *
 *		
 */
void QuoteLvMinIndex_calcBBD(QUOTELV_MIN_INDEX* aMinIndex,
                             QUOTELV_MIN_RES* aRes);
/**计算KDJ指标
 *
 @param QUOTELV_MIN_INDEX*		aKIndex		操作结构指针
 *  @param QUOTELV_MIN_RES*			aRes      分时应答结构
 *
 *  @return -
 *
 *		
 */
void QuoteLvMinIndex_calcKDJ(QUOTELV_MIN_INDEX* aMinIndex,
													 QUOTELV_MIN_RES* aRes);
/**计算MACD指标
 *
 *  @param QUOTELV_MIN_INDEX*		aMinIndex		操作结构指针
 *  @param QUOTELV_MIN_RES*			aRes			分时应答结构
 *
 *  @return -
 *
 *		
 */
void QuoteLvMinIndex_calcMACD(QUOTELV_MIN_INDEX* aMinIndex, 
															QUOTELV_MIN_RES* aRes);

/**计算RSI指标
 *
 *  @param QUOTELV_MIN_INDEX*		aMinIndex		操作结构指针
 *  @param QUOTELV_MIN_RES*			aRes			分时应答结构
 *
 *  @return -
 *
 *		
 */
void QuoteLvMinIndex_calcRSI(QUOTELV_MIN_INDEX* aMinIndex, 
														 QUOTELV_MIN_RES* aRes);
#endif
